home *** CD-ROM | disk | FTP | other *** search
- package javax.help;
-
- import java.awt.AWTEvent;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.EventQueue;
- import java.awt.MenuComponent;
- import java.awt.MenuContainer;
- import java.awt.MenuItem;
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.awt.Toolkit;
- import java.awt.event.InputEvent;
- import java.awt.event.KeyEvent;
- import java.awt.event.MouseEvent;
- import java.awt.peer.LightweightPeer;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- import java.util.Hashtable;
- import javax.swing.JComponent;
- import javax.swing.JLayeredPane;
- import javax.swing.JMenu;
- import javax.swing.JMenuItem;
- import javax.swing.JPopupMenu;
- import javax.swing.JRootPane;
-
- public class CSH {
- private static Hashtable comps;
- private static final boolean debug = false;
-
- public static void setHelpIDString(Component var0, String var1) {
- if (var0 instanceof JComponent) {
- ((JComponent)var0).putClientProperty("HelpID", var1);
- } else {
- if (comps == null) {
- comps = new Hashtable(5);
- }
-
- Hashtable var2 = (Hashtable)comps.get(var0);
- if (var2 != null) {
- if (var1 != null) {
- var2.put("HelpID", var1);
- } else {
- var2.remove("HelpID");
- if (var2.isEmpty()) {
- comps.remove(var0);
- }
- }
- } else if (var1 != null) {
- var2 = new Hashtable(2);
- var2.put("HelpID", var1);
- comps.put(var0, var2);
- }
- }
-
- }
-
- public static String getHelpIDString(Component var0) {
- String var1 = null;
- if (var0 instanceof JComponent) {
- var1 = (String)((JComponent)var0).getClientProperty("HelpID");
- } else if (comps != null) {
- Hashtable var2 = (Hashtable)comps.get(var0);
- if (var2 != null) {
- var1 = (String)var2.get("HelpID");
- }
- }
-
- if (var1 != null) {
- return var1;
- } else {
- Container var3 = var0.getParent();
- return var3 != null ? getHelpIDString((Component)var3) : null;
- }
- }
-
- public static void setHelpSet(Component var0, HelpSet var1) {
- if (var0 == null) {
- throw new IllegalArgumentException("Invalid Component");
- } else {
- if (var0 instanceof JComponent) {
- ((JComponent)var0).putClientProperty("HelpSet", var1);
- } else {
- if (comps == null) {
- comps = new Hashtable(5);
- }
-
- Hashtable var2 = (Hashtable)comps.get(var0);
- if (var2 != null) {
- if (var1 != null) {
- var2.put("HelpSet", var1);
- } else {
- var2.remove("HelpSet");
- if (var2.isEmpty()) {
- comps.remove(var0);
- }
- }
- } else if (var1 != null) {
- var2 = new Hashtable(2);
- var2.put("HelpSet", var1);
- comps.put(var0, var2);
- }
- }
-
- }
- }
-
- public static HelpSet getHelpSet(Component var0) {
- String var1 = null;
- HelpSet var2 = null;
- if (var0 instanceof JComponent) {
- var1 = (String)((JComponent)var0).getClientProperty("HelpID");
- if (var1 != null) {
- var2 = (HelpSet)((JComponent)var0).getClientProperty("HelpSet");
- }
- } else if (comps != null) {
- Hashtable var3 = (Hashtable)comps.get(var0);
- if (var3 != null) {
- var1 = (String)var3.get("HelpID");
- if (var1 != null) {
- var2 = (HelpSet)var3.get("HelpSet");
- }
- }
- }
-
- if (var1 != null) {
- return var2;
- } else {
- Container var4 = var0.getParent();
- return var4 != null ? getHelpSet((Component)var4) : null;
- }
- }
-
- public static void setHelpIDString(MenuItem var0, String var1) {
- if (comps == null) {
- comps = new Hashtable(5);
- }
-
- Hashtable var2 = (Hashtable)comps.get(var0);
- if (var2 != null) {
- if (var1 != null) {
- var2.put("HelpID", var1);
- } else {
- var2.remove("HelpID");
- if (var2.isEmpty()) {
- comps.remove(var0);
- }
- }
- } else if (var1 != null) {
- var2 = new Hashtable(2);
- var2.put("HelpID", var1);
- comps.put(var0, var2);
- }
-
- }
-
- public static String getHelpIDString(MenuItem var0) {
- String var1 = null;
- if (comps != null) {
- Hashtable var2 = (Hashtable)comps.get(var0);
- if (var2 != null) {
- var1 = (String)var2.get("HelpID");
- }
- }
-
- if (var1 != null) {
- return var1;
- } else {
- MenuContainer var3 = var0.getParent();
- return var3 != null && var3 instanceof MenuItem ? getHelpIDString((MenuItem)var3) : null;
- }
- }
-
- public static void setHelpSet(MenuItem var0, HelpSet var1) {
- if (comps == null) {
- comps = new Hashtable(5);
- }
-
- Hashtable var2 = (Hashtable)comps.get(var0);
- if (var2 != null) {
- if (var1 != null) {
- var2.put("HelpSet", var1);
- } else {
- var2.remove("HelpSet");
- if (var2.isEmpty()) {
- comps.remove(var0);
- }
- }
- } else if (var1 != null) {
- var2 = new Hashtable(2);
- var2.put("HelpSet", var1);
- comps.put(var0, var2);
- }
-
- }
-
- public static HelpSet getHelpSet(MenuItem var0) {
- String var1 = null;
- HelpSet var2 = null;
- if (comps != null) {
- Hashtable var3 = (Hashtable)comps.get(var0);
- if (var3 != null) {
- var1 = (String)var3.get("HelpID");
- if (var1 != null) {
- var2 = (HelpSet)var3.get("HelpSet");
- }
- }
- }
-
- if (var1 != null) {
- return var2;
- } else {
- MenuContainer var4 = var0.getParent();
- return var4 != null && var4 instanceof MenuItem ? getHelpSet((MenuItem)var4) : null;
- }
- }
-
- public static Object trackCSEvents() {
- int var0 = -1;
-
- try {
- if (Thread.currentThread().getClass().getName().endsWith("EventDispatchThread")) {
- EventQueue var1 = null;
-
- try {
- var1 = Toolkit.getDefaultToolkit().getSystemEventQueue();
- } catch (Exception var9) {
- debug(var9);
- }
-
- if (var1 == null) {
- return null;
- }
-
- while(true) {
- AWTEvent var2;
- Object var3;
- while(true) {
- ++var0;
- var2 = var1.getNextEvent();
- var3 = var2.getSource();
-
- try {
- Class var4 = Class.forName("java.awt.ActiveEvent");
- if (var4 == null || !var4.isInstance(var2)) {
- break;
- }
-
- Object var5 = null;
- Class[] var6 = new Class[0];
- Object[] var7 = new Object[0];
- Method var20 = var4.getMethod("dispatch", var6);
- if (var20 == null) {
- break;
- }
-
- var20.invoke(var2, var7);
- } catch (NoSuchMethodError var10) {
- break;
- } catch (ClassNotFoundException var11) {
- break;
- } catch (IllegalAccessException var12) {
- break;
- } catch (InvocationTargetException var13) {
- break;
- } catch (NoSuchMethodException var14) {
- break;
- }
- }
-
- if (var3 instanceof Component) {
- if (var2 instanceof InputEvent) {
- if (var2 instanceof KeyEvent) {
- KeyEvent var19 = (KeyEvent)var2;
- if (var19.getKeyCode() == 3) {
- var19.consume();
- return null;
- }
-
- dispatchEvent(var3, var2);
- } else if (var2 instanceof MouseEvent) {
- MouseEvent var18 = (MouseEvent)var2;
- int var22 = var18.getID();
- if (var22 != 500 && var22 != 501 && var22 != 502) {
- var18.consume();
- } else if (var22 == 500) {
- if (var0 != 0) {
- var18.consume();
- return getDeepestObjectAt(var3, var18.getX(), var18.getY());
- }
-
- dispatchEvent(var3, var2);
- } else {
- var18.consume();
- }
- } else {
- dispatchEvent(var3, var2);
- }
- } else {
- dispatchEvent(var3, var2);
- }
- } else if (var3 instanceof MenuComponent) {
- if (var3 instanceof MenuItem) {
- if (var2 instanceof InputEvent) {
- if (var2 instanceof KeyEvent) {
- KeyEvent var17 = (KeyEvent)var2;
- if (var17.getKeyCode() == 3) {
- var17.consume();
- return null;
- }
-
- dispatchEvent(var3, var2);
- } else if (var2 instanceof MouseEvent) {
- MouseEvent var16 = (MouseEvent)var2;
- int var21 = var16.getID();
- if (var21 != 500 && var21 != 501 && var21 != 502) {
- var16.consume();
- } else if (var21 == 500) {
- if (var0 != 0) {
- var16.consume();
- return getDeepestObjectAt(var3, var16.getX(), var16.getY());
- }
-
- dispatchEvent(var3, var2);
- } else {
- var16.consume();
- }
- } else {
- dispatchEvent(var3, var2);
- }
- }
- } else {
- dispatchEvent(var3, var2);
- }
- } else {
- System.err.println("unable to dispatch event: " + var2);
- }
- }
- }
- } catch (InterruptedException var15) {
- debug("InterrupedExeception");
- }
-
- debug("Fall Through code");
- return null;
- }
-
- private static void dispatchEvent(Object var0, AWTEvent var1) {
- if (var0 instanceof Component) {
- ((Component)var0).dispatchEvent(var1);
- } else if (var0 instanceof MenuComponent) {
- ((MenuComponent)var0).dispatchEvent(var1);
- }
-
- }
-
- private static Object getDeepestObjectAt(Object var0, int var1, int var2) {
- if (var0 != null && var0 instanceof Container) {
- Component var3 = findComponentAt((Container)var0, var1, var2);
- if (var3 != null && var3 != var0) {
- if (!(var3 instanceof JRootPane)) {
- return var3;
- }
-
- JLayeredPane var4 = ((JRootPane)var3).getLayeredPane();
- Rectangle var5 = var4.getBounds();
- var3 = (Component)getDeepestObjectAt(var4, var1 - var5.x, var2 - var5.y);
- if (var3 != null) {
- return var3;
- }
- }
- }
-
- return var0;
- }
-
- private static Component findComponentAt(Container var0, int var1, int var2) {
- Object var3 = var0.getTreeLock();
- synchronized(var3) {
- Component var4 = findComponentAt(var0, var1, var2, true, false);
- return var4;
- }
- }
-
- private static Component findComponentAt(Container var0, int var1, int var2, boolean var3, boolean var4) {
- if (var0.contains(var1, var2) && var0.isVisible() && (var3 || var0.isEnabled())) {
- int var5 = var0.getComponentCount();
- Component[] var6 = var0.getComponents();
- Component var7 = null;
- if (var4 && var0 instanceof JRootPane) {
- var7 = ((JRootPane)var0).getGlassPane();
- }
-
- for(int var8 = 0; var8 < var5; ++var8) {
- Component var9 = var6[var8];
- if (var9 != null && var9 != var7 && !(var9.getPeer() instanceof LightweightPeer)) {
- Point var10 = var9.getLocation();
- if (var9 instanceof Container) {
- var9 = findComponentAt((Container)var9, var1 - var10.x, var2 - var10.y, var3, var4);
- } else {
- var9 = var9.locate(var1 - var10.x, var2 - var10.y);
- }
-
- if (var9 != null && var9.isVisible() && (var3 || var9.isEnabled())) {
- return var9;
- }
- }
- }
-
- for(int var13 = 0; var13 < var5; ++var13) {
- Component var14 = var6[var13];
- if (var14 != null && var14 != var7 && var14.getPeer() instanceof LightweightPeer) {
- Point var11 = var14.getLocation();
- if (var14 instanceof Container) {
- var14 = findComponentAt((Container)var14, var1 - var11.x, var2 - var11.y, var3, var4);
- } else {
- var14 = var14.locate(var1 - var11.x, var2 - var11.y);
- }
-
- if (var14 != null && var14.isVisible() && (var3 || var14.isEnabled())) {
- return var14;
- }
- }
- }
-
- return var0;
- } else {
- return null;
- }
- }
-
- private static JMenuItem findArmedMenuItem(JMenu var0) {
- if (var0 == null) {
- return null;
- } else {
- Object var1 = var0.getTreeLock();
- synchronized(var1) {
- if (!var0.isArmed()) {
- Object var8 = null;
- return (JMenuItem)var8;
- } else {
- int var2 = 0;
-
- for(int var3 = var0.getMenuComponentCount(); var2 < var3; ++var2) {
- Object var4 = var0.getMenuComponent(var2);
- if (var4 instanceof JMenuItem && ((JMenuItem)var4).isArmed()) {
- if (var4 instanceof JMenu) {
- var4 = findArmedMenuItem((JMenu)var4);
- }
-
- JMenuItem var5 = (JMenuItem)var4;
- return var5;
- }
- }
-
- return var0;
- }
- }
- }
- }
-
- private static Component findArmedComponent(JPopupMenu var0) {
- if (var0 == null) {
- return null;
- } else {
- Object var1 = var0.getTreeLock();
- synchronized(var1) {
- if (!var0.isVisible()) {
- Object var8 = null;
- return (Component)var8;
- } else {
- int var2 = 0;
-
- for(int var3 = var0.getComponentCount(); var2 < var3; ++var2) {
- Object var4 = var0.getComponent(var2);
- if (var4 instanceof JMenuItem && ((JMenuItem)var4).isArmed()) {
- if (var4 instanceof JMenu) {
- var4 = findArmedMenuItem((JMenu)var4);
- }
-
- return (Component)var4;
- }
- }
-
- Component var9 = var0.getInvoker();
- return var9;
- }
- }
- }
- }
-
- private static Component findFocusOwner(Component var0) {
- Object var1 = ((Component)var0).getTreeLock();
- synchronized(var1) {
- if (var0 instanceof JPopupMenu) {
- Component var9 = findArmedComponent((JPopupMenu)var0);
- return var9;
- } else if (var0 instanceof JComponent && ((JComponent)var0).hasFocus()) {
- if (var0 instanceof JMenu) {
- var0 = findArmedMenuItem((JMenu)var0);
- }
-
- return (Component)var0;
- } else {
- if (var0 instanceof Container) {
- int var2 = 0;
-
- for(int var3 = ((Container)var0).getComponentCount(); var2 < var3; ++var2) {
- Component var4 = findFocusOwner(((Container)var0).getComponent(var2));
- if (var4 != null) {
- return var4;
- }
- }
- }
-
- Object var8 = null;
- return (Component)var8;
- }
- }
- }
-
- private static void debug(Object var0) {
- }
-
- // $FF: synthetic method
- static Component access$000(Component var0) {
- return findFocusOwner(var0);
- }
-
- // $FF: synthetic method
- static void access$100(Object var0) {
- debug(var0);
- }
- }
-